package com.unknownman.block.constants;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 链和合约常量
 */
public class ChainContractConstants {


    /**
     * 转账事件名称
     */
    public static final String TRANSFER_EVENT_NAME = "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef";

    /**
     * 0地址
     */
    public static final String ZERO_ADDRESS = "0x0000000000000000000000000000000000000000";

    /**
     * 0地址
     */
    public static final String ERROR_MAP_KEY = "system:block:error.map";

    public static final String HASH_LIST_KEY = "system:block:HASH_LIST_KEY";




    /**
     * 链状态
     */
    @Getter
    @AllArgsConstructor
    public static enum ChainStatusConstants {
        NORMAL(10, "启用"),
        FORBIDDEN(20,"禁用"),
        ;
        private int status;
        private String desc;
    }

    /**
     * 支持的链符号
     */
    @Getter
    @AllArgsConstructor
    public static enum ChainSymbolEnum {

        BSC("bsc"),
        ;

        private String symbol;
    }

    /**
     * 合约配置状态
     */
    @Getter
    @AllArgsConstructor
    public static enum ContractStatusConstants {
        NORMAL(10, "启用"),
        FORBIDDEN(20,"禁用"),
        ;
        private int status;
        private String desc;
    }

    /**
     * 合约类型枚举
     */
    @Getter
    @AllArgsConstructor
    public static enum ContractTypeConstants {
        ERC20(10, "ERC20标准合约"),
        ERC721(20,"ERC721标准合约"),
        OTHERS(30,"其它合约"),
        ;
        private int type;
        private String desc;
    }
}
